package com.joysuch.wwyt.edu.bean;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.joysuch.wwyt.core.bean.SimpleListBean;
import com.joysuch.wwyt.edu.enums.CertificateNotifyObjType;
import com.joysuch.wwyt.edu.enums.CertificateNotifyStatus;
import com.joysuch.wwyt.edu.enums.CertificateNotifyType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 证书提醒对象 wwyt_edu_certificate_notify
 *
 * @author eric
 * @date 2021-04-16
 */
@ApiModel("证书提醒")
@Data
public class EduCertificateNotifyPageVO implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * $column.columnComment
     */
    @ApiModelProperty("id")
    private Long id;

    /**
     * $column.columnComment
     */
    private Long tenentId;

    /**
     * $column.columnComment
     */
    private String orgCode;

    /**
     * 提醒名称
     */
    @ApiModelProperty("提醒名称")
    private String name;

    /**
     * {@link CertificateNotifyType}
     */
    /**
     * 0-有效期到期提醒/1-复证到期提醒
     */
    @ApiModelProperty(value = "提醒类型", allowableValues = "0,1", notes = "0-有效期到期提醒/1-复证到期提醒")
    private Integer type;

    @ApiModelProperty(value = "提醒类型描述")
    private String typeDesc;

    /**
     * 提前天数
     */
    @ApiModelProperty(value = "提前天数", notes = "1-365")
    private Integer aheadDays;

    @ApiModelProperty(value = "提前天数描述")
    private String aheadDaysDesc;

    /**
     * {@link CertificateNotifyObjType}
     */
    /**
     * 提醒对象类型: 0-人员/1-部门负责人/2-管理类型
     */
    @ApiModelProperty(value = "提醒对象类型", allowableValues = "0,1,2", notes = "0-人员/1-部门负责人/2-管理类型")
    private Integer objType;

    @ApiModelProperty(value = "提醒对象类型描述")
    private String objTypeDesc;

    /**
     * 提醒对象id
     */
    @ApiModelProperty(value = "提醒对象id")
    private Long objId;

    @ApiModelProperty(value = "提醒对象名称")
    private String objName;

//    @ApiModelProperty(value = "管理类型itemId")
//    private Long manageType;
//
//    @ApiModelProperty(value = "管理类型itemName")
//    private String manageTypeName;

    private List<SimpleListBean> objList;

    /**
     * 提醒证书类型ids  json字符串
     */
    @ApiModelProperty(value = "提醒证书类型ids, 多个用英文逗号隔开")
    private String certificates;

    private String certificateNames;

    /**
     * 是否提醒本身 1-是/0-否
     */
    @ApiModelProperty(value = "是否提醒本身")
    private Boolean notifySelfFlag;

    /**
     * {@link CertificateNotifyStatus}
     */
    /**
     * 提醒启用状态 1-开启/0-关闭
     */
    @ApiModelProperty(value = "提醒启用状态 1-开启/0-关闭")
    private Integer status;

    /**
     * $column.columnComment
     */
    private Long createBy;

    /**
     * $column.columnComment
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * $column.columnComment
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /**
     * $column.columnComment
     */
    private Long updateBy;
}
